package com.star.common.kit.contract.enums.language.detail;

import com.star.common.kit.contract.enums.language.Iso6391LanguageEnum;
import com.star.common.kit.contract.enums.language.RealLanguageTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 法语语言
 *
 * @author zhouhengzhe
 */
@Getter
@AllArgsConstructor
public enum GermanLanguageTypeEnum {
    DE("de", "德语", RealLanguageTypeEnum.DE.getCode(), Iso6391LanguageEnum.DE),
    DE_DE("de_DE", "德语", RealLanguageTypeEnum.DE.getCode(), Iso6391LanguageEnum.DE),
    DE_LI("de_LI", "德语（列支敦斯登)", RealLanguageTypeEnum.DE.getCode(), Iso6391LanguageEnum.DE),
    DE_AT("de_AT", "德语（奥地利)", RealLanguageTypeEnum.DE.getCode(), Iso6391LanguageEnum.DE),
    DE_CH("de_CH", "德语（瑞士)", RealLanguageTypeEnum.DE.getCode(), Iso6391LanguageEnum.DE),
    ;
    /**
     * 语言标识
     */
    private final String code;

    /**
     * 描述
     */
    private final String message;

    /**
     * 实际用的语言
     */
    private final String realCode;

    /**
     * ISO语言标识
     */
    private final Iso6391LanguageEnum iso6391LanguageEnum;

    /**
     * 通过code获取实际用的语言
     *
     * @param language 语言
     * @return 真实语言
     */
    public static String getRealCodeByCode(String language) {
        for (GermanLanguageTypeEnum value : values()) {
            if (value.getCode().equalsIgnoreCase(language)) {
                return value.getRealCode();
            }
        }
        return null;
    }
}
